package editorsvg.editor.herramientas;

import editorsvg.editor.cursores.Cursores;
import editorsvg.editor.vista.EditorDocumento;
import java.awt.Cursor;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseEvent;

/**
 * Herramienta para realizar zoom sobre la pagina (alejar y acercar el punto de vista).
 * @author Jorge Berjano
 */
public class HerramientaZoom extends HerramientaBase {
    
    private EditorDocumento editor;
    private Point posicionBase;
    
    public HerramientaZoom(EditorDocumento editor) {
        this.editor = editor;
    }

    @Override
    public boolean pulsado(MouseEvent e) {
        posicionBase = e.getPoint();
        return false;
    }

    @Override
    public boolean arrastrando(MouseEvent e) {
        Point posicionActualRaton = e.getPoint();
        double pixels = (double) (posicionBase.y - posicionActualRaton.y);
        double altoPixels = (double) editor.getHeight();
        double zoom = pixels > 0 ? 1.0 + pixels / altoPixels : altoPixels / (altoPixels - pixels);
        
        editor.zoom(zoom);
        
        posicionBase = posicionActualRaton;        
        return true;
    }

    @Override
    public Cursor getCursor() {
        return Cursores.LUPA.getCursor();
    }

    @Override
    public void pintarEnPixeles(Graphics2D graphics) {        
    }

}
